package com.qdsg.modulesihealsdk.utils;

/**
 * @Description
 * @Author WuJianFeng
 * @Date 2022/11/17 15:33
 */

import android.content.Context;
import android.graphics.Bitmap;
import android.util.Base64;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Bitmap 帮助类之一
 */
public class BitmapUtils {

    /**
     * Save Bitmap
     *
     */
    public static void saveBitmap(Bitmap bm, Context mContext) {
        //指定我们想要存储文件的地址
        String TargetPath = "/sdcard";
        //判断指定文件夹的路径是否存在
        if (!fileIsExist(TargetPath)) {
        } else {
            //如果指定文件夹创建成功，那么我们则需要进行图片存储操作
            File saveFile = new File(TargetPath, "emp3.png");

            try {
                FileOutputStream saveImgOut = new FileOutputStream(saveFile);
                // compress - 压缩的意思
                bm.compress(Bitmap.CompressFormat.JPEG, 80, saveImgOut);
                //存储完成后需要清除相关的进程
                saveImgOut.flush();
                saveImgOut.close();
            } catch (IOException ex) {

                ex.printStackTrace();
            }
        }
    }
    static boolean fileIsExist(String fileName)
    {
        //传入指定的路径，然后判断路径是否存在
        File file=new File(fileName);
        if (file.exists()) {
            return true;
        } else{
            //file.mkdirs() 创建文件夹的意思
            return file.mkdirs();
        }
    }

    /**
     * 将图片转成byte数组
     *
     * @param bitmap 图片
     * @return 图片的字节数组
     */
    public static byte[] bitmap2Byte(Bitmap bitmap) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        //把bitmap100%高质量压缩 到 output对象里
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
        return outputStream.toByteArray();
    }
    /**
     * 将图片转成byte数组
     *
     * @param imageByte 图片
     * @return Base64 String
     */
    public static String byte2Base64(byte[] imageByte) {
        if(null == imageByte) {
            return null;
        }
        return Base64.encodeToString(imageByte, Base64.DEFAULT);
    }


}

